<!-- 实现级联选择的回显效果(简易版)，options中获取数据 -->
<template>
  <div>
    <el-cascader
      v-model="selectedOptions"
      :options="options"
      :props="{ expandTrigger: 'hover', multiple: false }"
    ></el-cascader>
    <avue-data-tabs :option="avueDataTabsOption"></avue-data-tabs>
  </div>
</template>
<script>
export default {
  data() {
    return {
      selectedOptions: [], // 这里存放回显的值，通常是后端返回的ID数组
      options: [], // 存放级联选择器的所有选项数据
      avueDataTabsOption:{
        data: [
          {
            click: function (item) {
              alert("点击事件在data数据里面");
            },
            title: '分类统计',
            subtitle: '实时',
            count: 7993,
            allcount: 10222,
            text: '当前分类总记录数',
            color: 'rgb(27, 201, 142)',
            key: '类'
          },
          {
            click: function (item) {
              alert('点击事件在data数据里面');
            },
            title: '附件统计',
            subtitle: '实时',
            count: 3112,
            allcount: 10222,
            text: '当前上传的附件数',
            color: 'rgb(230, 71, 88)',
            key: '附'
          },
          {
            click: function (item) {
              alert('点击事件在data数据里面');
            },
            title: '文章统计',
            subtitle: '实时',
            count: 908,
            allcount: 10222,
            text: '评论次数',
            color: 'rgb(178, 159, 255)',
            key: '评'
          }
        ]
      }
    };
  },
  async created() {
    // 假设这里是从后端获取完整的级联选项数据
    const response = await this.fetchCascaderData();
    this.options = response.data; 

    // 如果有需要回显的值，比如从路由参数、URL查询字符串或组件属性传递过来
    const backEndSelectedIds = ['1', '3','4']; // 示例回显值
    this.setSelectedOptions(backEndSelectedIds);
  },
  methods: {
    async fetchCascaderData() {
      // 模拟异步获取数据，实际应用中应替换为真实API调用
      return new Promise(resolve => {
        setTimeout(() => {
          resolve({
            data: [
              {
                value: '1',
                label: '选项1',
                children: [
                  { value: '2', label: '选项1-1' },
                  { value: '3', label: '选项1-2', children: [{ value: '4', label: '选项1-2-1' }] },
                ],
              },
              // 更多选项...
            ],
          });
        }, 1000);
      });
    },
    setSelectedOptions(ids) {
      console.log(ids,"ids");
      // 根据后端返回的ID数组设置选中值
      this.selectedOptions = ids;
      // 注意：对于非懒加载，这里通常不需要额外处理，因为options已经是完整的
      // 但如果options结构复杂，可能需要递归设置以确保正确回显
    },
  },
};
</script>
